// 手写bind函数
Function.prototype.myBind = function() {
    //将参数转成数组
    let arr = Array.from(arguments);
    // 第一个参数为this指向
    let t = arr.shift();
    //  保存当前this的引用  
    let self = this;
    // 返回一个函数
    return function() {
        self.apply(t,arr)
    }
}

// 测试
function greet(name, message) {
    console.log(`Hello ${name}, ${message}!`);
    console.log(this); 
}
greet('jack','How are you?') // this 指向 window

const greet1 = greet.myBind({name:'Hoho'},'jack','How are you?')
greet1() // this 指向 {name:'Hoho'}